package com.atm.atmsys.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.Map;

public class JwtUtil {

    private static final String signKey = "atm_sys";
    private static final long expire = 700*24*60*60*1000L;
    /**
     * 生成jwt
     * 使用Hs256算法
     */
    public static String generateJWT(Map<String, Object> claims) {


        // 设置jwt的body
        String jwt= Jwts.builder()
                .addClaims(claims)
                // 设置签名使用的签名算法和签名使用的秘钥
                .signWith(SignatureAlgorithm.HS256, signKey)
                // 设置过期时间
                .setExpiration(new Date(System.currentTimeMillis()+expire))
                .compact();

        return jwt;
    }

    /**
     * Token解密
     *
     */
    public static Claims parseJWT(String jwt) {
        // 得到DefaultJwtParser
        Claims claims = Jwts.parser()
                // 设置签名的秘钥
                .setSigningKey(signKey)
                // 设置需要解析的jwt
                .parseClaimsJws(jwt).getBody();
        return claims;
    }

}
